package com.e3.sysmg.security.client;

import java.util.List;

import com.e3.sysmg.security.model.ModuleModel;
import com.e3.template.tgf.TGFTreePanelAsync;
import com.google.gwt.user.client.rpc.AsyncCallback;
/**
 * 树形方式显示模块结构。
 * 当单击某个节点时，在ModuleUI的Grid里显示该模块的详细信息，如果该节点有子节点，则在Grid中显示该节点及其子节点。
 * 当双击某个节点时，执行编辑操作。
 * 支持上下文菜单
 * @author Janty
 *
 */
public class ModuleTreePanel extends TGFTreePanelAsync<ModuleModel> {
	
	private ModuleRPCServiceAsync service = ModuleRPCService.Util.getInstance();

	@Override
	public String getTreeDisplayFieldName() {
		return ModuleModel.NAME;
	}

	@Override
	public void excuteLoadModelChildren(ModuleModel pModel,	AsyncCallback<List<ModuleModel>> callback) {
		service.getModuleChildren(pModel, callback);
	}

	@Override
	public String getRootDisplayName() {
		return ModuleMessages.INSTANCE.tree_root_name();
	}

	@Override
	protected boolean isRootModel(ModuleModel model) {
		return ModuleHelper.INSTANCE.isRootModel(model);
	}
		
}
